Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

715
Views
angular-cli build prod "El compilador de tiempo de ejecución no está cargado"

Hice ng build -prod y encontré un error extraño que es _zone_symbol__error :

 Error: Uncaught (in promise): Error: Runtime compiler is not loaded Error: Runtime compiler is not loaded at d (http://localhost:4200/polyfills.cd321326a3dfc08ceb46.bund

No estoy usando el compilador manualmente en mi aplicación. Y lo más raro es que el error parece provenir de los polyfills. Como puedo resolver esto?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

En mi caso, funciona para deshabilitar la compilación anticipada para la compilación

 ng build -prod --aot=false

De esta manera, la fuente todavía está empaquetada y fea y se incluye el compilador Just-in-Time.

El archivo main.bundle js es más pequeño que cuando se utiliza una compilación aot, pero el archivo vendor.bundle js aumenta aproximadamente 1,5 MB.

Editar 2018-07-11

Parece que hay dos casos:

1) Si su proyecto crea intencionalmente verdaderos componentes dinámicos, actualmente la única forma de incluir el compilador JIT parece deshabilitar AOT para la compilación de producción. Ver https://github.com/angular/angular/issues/11780 para una discusión

2) Si su proyecto no necesita crear componentes dinámicamente y no sabe por qué ocurre el error, deshabilitar AOT puede ser una solución , pero tenga cuidado con los inconvenientes. Sin AOT, tiene archivos de mayor tamaño y el usuario tarda más en comenzar con su aplicación. En este caso, puede ser más apropiado investigar por qué se hace referencia al compilador JIT en la compilación de producción.

Hay algunas discusiones SO ( AngularCli y AOT: ERROR Error: el compilador de tiempo de ejecución no está cargado ,solución de problemas "El compilador de tiempo de ejecución no está cargado" ) en torno a las cuales sugieren que la carga diferida de un módulo de terceros que usa 'COMPILER_PROVIDERS' puede ser el motivo de la error. Sin embargo, al momento de escribir no tienen una respuesta aceptada.

Para la descripción de otra trampa al usar módulos de carga diferida, vea la respuesta de Alexei en este hilo

over 4 years ago · Santiago Trujillo Report

0

Nigromancia... Recibí el mismo error sin un uso explícito del compilador, por lo que me tomó un tiempo entender lo que estaba pasando.

Al realizar la carga diferida de algunos módulos, AOT parece tener problemas para determinar cuáles son los módulos necesarios , como se indica en este hilo . El resultado es que la compilación final no incluirá esos módulos y, cuando se necesiten, la aplicación intentará compilarlos sobre la marcha y fallará porque el compilador no está disponible.

La solución se proporciona aquí y para mí funcionó así:

 export function getSomeModule() { return SomeModule; } export const routes: Routes = [ // some routes here { path: "some", loadChildren: "./some/some.module#SomeModule" } ];

Entonces, se indica la ruta al módulo y también AOT conocerá SomeModule a través de la función getSomeModule (que no se usa en el código, pero ayuda a AOT a incluir el módulo).

over 4 years ago · Santiago Trujillo Report

0

Esto sucede en @angular/cli@1.0.0-rc.2 cuando se realiza una compilación de producción ( ng build -prod ) mientras se usa la clase de compiler en su código.

Para reemplazar el compiler , querrá usar la "creación dinámica de componentes". Ver este SO:

  • ¿Cómo puedo usar/crear una plantilla dinámica para compilar un componente dinámico con Angular 2.0?

.


Además, compruebe si está importando polyfills.ts

Pude deshacerme de esto comparando mi proyecto @angular/cli@1.0.0-rc2 con un proyecto CLI recién creado y noté que polyfills.ts no se importó en ningún lugar excepto en .angular-cli.json

Por ejemplo, estaba importando polyfills.ts en main.ts

 import 'polyfills.ts'; // Remove this line import { enableProdMode } from '@angular/core'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { AppModule } from './app/app.module'; import { environment } from './environments/environment'; if (environment.production) { enableProdMode(); } platformBrowserDynamic().bootstrapModule(AppModule);

Polyfill.ts solo necesita estar en .angular-cli.json aquí:

 ... "index": "index.html", "main": "main.ts", "polyfills": "polyfills.ts", "test": "test.ts", "tsconfig": "tsconfig.app.json", ...

Duplicar:

  • EXCEPCIÓN: el compilador de tiempo de ejecución no está cargado
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!